package com.yckj.day05;

/**
 * TODO 选择排序
 *
 * @author shengyuee
 * @version 1.0
 * 2025/7/22 11:06
 */
public class SelectSortDemo {
    public static void selectSort(int[] arr){
        // 控制比较的轮数,i的范围在0~arr.length - 1
        for (int i = 0; i < arr.length - 1; i++) {
            // 初始化最小值的索引
            int minIndex = i;
            // 把当前记录的最小的数和后面所有数进行比较，控制每一轮比较的次数，j的范围i+1~arr.length
            for (int j = i + 1; j < arr.length; j++) {
                // 如果后面的数比当前记录的数小
                if(arr[minIndex] > arr[j]){
                    // 记录最小的那个数的下标
                    minIndex = j;
                }
            }
            // 如果记录的最小数的下标和最初设置的最小值的下标不一样，说明下标为minIndex的数的值比arr[i]小，需要交换，将最小值放到arr[i]的位置
            if(minIndex != i){
                int temp = arr[minIndex];
                arr[minIndex] = arr[i];
                arr[i] = temp;
            }
        }
    }
}
